package com.itlong.cloud.propertyapp.service;

import com.itlong.cloud.POJO.DTO.app.property.app.PropertyAppAlarmDTO;
import com.itlong.cloud.POJO.DTO.app.property.app.PropertyAppInspectDTO;
import com.itlong.cloud.POJO.PO.PropertyInspectPointInfoPO;
import com.itlong.cloud.POJO.PO.PropertyInspectRecordPO;
import com.itlong.cloud.POJO.VO.app.property.app.PropertyAppInspectLineInfoVO;
import com.itlong.cloud.POJO.VO.app.property.app.PropertyAppInspectRecordDetailVO;
import com.itlong.cloud.POJO.VO.app.property.app.PropertyAppInspectInfoVO;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      物业APP巡检模块业务逻辑接口
 * </desc>
 *
 * @createDate2020/1/7
 **/

public interface IPropertyAppInspectService {

    /**
     * <desc>
     *      获取巡检计划信息列表
     * </desc>
     *
     * @param userId
     * @param projectId
     * @return
     * @Author Zhu.yj
     * @createDate  2020/1/7
     */
    List<PropertyAppInspectInfoVO> getInspectPlanList(String userId, String projectId) throws Exception;

    /**
     * <desc>
     *      保存报警信息
     * </desc>
     *
     * @param propertyAppAlarmDTO 物业app报警DTO
     * @return
     * @Author Zhu.yj
     * @createDate  2020/1/7
     */
    Integer savePoliceCallDetail(PropertyAppAlarmDTO propertyAppAlarmDTO) throws Exception;

    /**
     * <desc>
     *      根据巡检点编号获取巡检点信息
     * </desc>
     *
     * @return 巡检点信息
     * @author wangzhi
     * @createDate 2020/01/08
     */
    PropertyInspectPointInfoPO getInspectPointByNum(PropertyAppInspectDTO propertyAppInspectDTO) throws Exception;

    /**
     * <desc>
     *      保存巡检详情
     * </desc>
     *
     * @return 受影响行数
     * @author wangzhi
     * @createDate 2020/01/08
     */
    Integer saveInspectRecord(PropertyInspectRecordPO propertyInspectRecordPO) throws Exception;

    /**
     * <desc>
     *      查询巡检记录月视图时间
     * </desc>
     *
     * @return 年月和其对应的日期列表
     * @author wangzhi
     * @createDate 2020/02/17
     */
    List<Map<String, Object>> getInspectRecordTime(PropertyAppInspectDTO propertyAppInspectDTO) throws Exception;

    /**
     * <desc>
     *      查询巡检记录月视图详情
     * </desc>
     *
     * @return 巡检记录月视图详情
     * @author wangzhi
     * @createDate 2020/02/17
     */
    List<PropertyAppInspectRecordDetailVO> getInspectRecordDetail(PropertyAppInspectDTO propertyAppInspectDTO) throws Exception;

    /**
     * <desc>
     *      获取巡检计划列表
     * </desc>
     *
     * @param inspectPlanId 巡检计划id
     * @param projectId 项目id
     * @param pageNum  页码
     * @return
     * @Author Zhu.yj
     * @createDate  2020/4/2
     */
    List<PropertyAppInspectLineInfoVO> getInspectLineList(String inspectPlanId,String projectId,String pageNum) throws Exception;

    /**
     * <desc>
     *      获取巡检点列表信息
     * </desc>
     *
     * @param inspectPlanId 巡检计划id
     * @param projectId 项目id
     * @param pageNum  页码
     * @return
     * @Author Zhu.yj
     * @createDate  2020/4/2
     */
    List<String> getInspectPointList(String inspectPlanId,String projectId,String pageNum) throws Exception;
}
